<?

/**
 * Lord_Form_Validate_Description
 * 
 * Рукописный валидатор сео-описания страницы
 * 
 * @author Игорь Будасов aka Lord <igor.budasov@gmail.com>
 */

class Lord_Form_Validate_Description extends Zend_Validate_Abstract 
{
	/**
	 * Метка ошибки
	 * @var const 
	 */    
	const INVALID = 'descriptionInvalid';

	/**
	 * Текст ошибки
	 * @var array 
	 */
	protected $_messageTemplates = array(
		self::INVALID => 'Value does not appear to be a valid description',
	);

	/**
	 * Проверка описания
	 * 
	 * @param string $value значение которое поддается валидации
	 */
	public function isValid($value) 
	{
		// Благодаря этому методу значение будет автоматически подставлено в текст ошибки при необходимости
		$this->_setValue($value);
		
		// Проверка на допустимые символы
		if (!preg_match('/^[\wA-Za-zÀ-ÖØ-öø-ÿА-яа-я,. ]+$/', $value)) {
			// С помощью этого метода мы указываем какая именно ошибка произошла
			$this->_error(self::INVALID);
			return false;            
		}

		return true;
	}
}